package marvin.client.player;

import marvin.client.player.MP3Player;

import java.util.EventListener;

/**
 * The listener interface for handling player events.
 * 
 */

public interface MP3PlayerListener extends EventListener {

	/**
	 * Invoked when player start playing.
	 */
	void onEndOfStream(MP3Player player);
	
	/**
	 * Invoked when player start playing.
	 */
	void onPlay(MP3Player player);

	/**
	 * Invoked when player pause.
	 */
	void onPause(MP3Player player);

	/**
	 * Invoked when player stops.
	 */
	void onStop(MP3Player player);

	/**
	 * Invoked when the volume is changed.
	 */
	void onSetVolume(MP3Player player, int volume);

	/**
	 * Invoked when shuffle state of the player is changed.
	 */
	void onSetShuffle(MP3Player player, boolean shuffle);

	/**
	 * Invoked when repeat state of the player is changed.
	 */
	void onSetRepeat(MP3Player player, boolean repeat);

}
